package map;

import java.util.Collection;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

public class Test {
    public static void main(String[] args) {
        Map<String,String> map = new TreeMap<>();
        //map主要的用途，构建key-vaule对的映射关系
        map.put("apple", "苹果");
        map.put("banana", "香蕉");
        map.put("orange", "橘子");
        map.put("grape", "葡萄");
        map.put("pear", "梨");
        //System.out.println(map);
        //使用get根据key获取value
        System.out.println(map.get("apple"));
        System.out.println(map.get(""));//null//如果没有就返回null

        //使用getOrDefault根据key获取value，如果没有就返回默认值
        System.out.println(map.getOrDefault("grape", "葡萄"));//葡萄
        System.out.println(map.getOrDefault("grape1", "葡萄1"));//如果没有就返回"葡萄1"
        //如果没有key的元素，那就返回value值，如果有，就返回key对应的value值

        //此处size()方法返回的是map中元素的个数，也就是返回key-value对的个数
        System.out.println(map.size());//5

        //使用containsKey方法判断map中是否包含某个key
        System.out.println(map.containsKey("apple"));//true
        System.out.println(map.containsKey("grape1"));//false

        //使用containsValue方法判断map中是否包含某个value（需要遍历整个map）
        System.out.println(map.containsValue("苹果"));//true
        System.out.println(map.containsValue("葡萄1"));//false

        //拿到所有的key
        Set<String> keySet = map.keySet();
        System.out.println(keySet);

        //拿到所有的value
        Collection<String> values= map.values();

        //不能直接遍历map，因为map是无序的，所以不能直接遍历，只能遍历entrySet
        //使用entrySet方法获取所有的key-value对
        Set<Map.Entry<String, String>> entrySet = map.entrySet();
        for (Map.Entry<String, String> entry : entrySet) {
            System.out.println(entry.getKey() + " : " + entry.getValue());
        }
    }
}
